package com.railway.dao;

import java.util.List;

import com.railway.bean.Order;
import com.railway.bean.User;

public interface UserDao {
	
	/**
	 * @param userName
	 * @param userPassword
	 * @return
	 * 查询用户
	 */
	User selectUser(String userName,String userPassword);
	

	
	/**
	 * @param order_id
	 * @return
	 * 查询订单
	 */
	List<Order> selectOrder(int order_id);
	

	
	/**
	 *查询用户是否被删除
	 * @param username
	 * @return
	 */
	int selectIsDelete(String username);
	
	/**删除用户（逻辑删除）
	 * @param user_id
	 * @return
	 */
	int deleteUser(int user_id);
	
	/**根据用户姓名查询是否存在用户
	 * @param userName
	 * @return
	 */
	int selectUserByName(String userName);
	
	/**根据用户邮箱查询是否存在用户
	 * @param eamil
	 * @return
	 */
	int selectUserByEmail(String eamil);
	
	/**根据用户电话号码查询是否存在用户
	 * @param phoneNum
	 * @return
	 */
	int selectUserByPhoneNum(String phoneNum);
	
	/**添加用户
	 * @param user
	 * @return
	 */
	int insertUser(User user);
	
	/**
	 * @return
	 * 查询用户id
	 */
	int selectUserIdByUserName(String user_name);
	
	/**分页查询用户
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	List<User> selectUser(int pageNum, int pageSize);
	
	/**查询用户总数
	 * @return
	 */
	int selectCountUser();
	
	/**查询用户密码
	 * @param user_id
	 * @return
	 */
	String selectUserPassword(int user_id);
	
	/**修改用户密码
	 * @param user_id
	 * @param user_password
	 * @return
	 */
	int updateUserPassWord(int user_id,String user_password);
	
	/**查询用户电话号码
	 * @param user_id
	 * @param user_phone
	 * @return
	 */
	String selectUserPhone(int user_id);
	
	/**修改用户电话号码
	 * @param user_id
	 * @param user_phone
	 * @return
	 */
	int updateUserPhone(int user_id,String user_phone);
	
	/**查询用户eamil
	 * @param user_id
	 * @param user_email
	 * @return
	 */
	String selectUserEmail(int user_id);
	
	/**修改用户email
	 * @param user_id
	 * @param user_email
	 * @return
	 */
	int updateUserEmail(int user_id,String user_email);
	
	/**查询用户消费密码
	 * @param user_id
	 * @return
	 */
	String selectConsumptionPassword(int user_id);
	
	/**修改用户消费密码
	 * @param user_id
	 * @param consumptionPassword
	 * @return
	 */
	int updateConsumptionPassword(int user_id,String consumptionPassword);
	
	/**
	 * 查询所有用户
	 * 并实现分页
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	List<User> selectAllUser(int pageNum,int pageSize);
	
	/**
	 * @param u
	 * @return 通过管理员添加用户
	 */
	int addUser(User u);
	
	/**
	 * 通过用户真实姓名查询
	 * @param userName
	 * @return
	 */
	User selectByUserName(String userName);
	
	/**
	 *通过查询用户名和密码修改联系方式
	 * @param phoneNum
	 * @param userName
	 * @param password
	 * @return
	 */
	int updatePhone(String phoneNum, String userName, String password);
	
	/**
	 * 通过查询用户名和密码修改电子邮箱
	 * @param emailNew
	 * @param userName
	 * @param password
	 * @return
	 */
	int updateEmail(String emailNew, String userName, String password);
	
	/**
	 * 通过查询用户名和密码修改密码
	 * @param passwordNew
	 * @param userName
	 * @param password
	 * @return
	 */
	int updatePassword(String passwordNew, String userName, String password);
	
	
	/**通过id修改后台管理系统里的用户信息
	 * @param user_id
	 * @param user_name
	 * @param user_phone
	 * @param user_password
	 * @param user_email
	 * @param consumption_password
	 * @return
	 */
	int updateUserById(int user_id, String user_name, String user_phone, String user_password, String user_email,
			String consumption_password);
}
